Welcome to pandas!

8.14 高级表格横向拼接-1(按索引关联)

本节pd.merge()是pd.join()的进阶版,设置更为灵活,结构:

pd.merge(left,right,how=’innor’,on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=(“_x”,”_y”),copy=True,indicator=False,validate=None)

left :提供要做横向拼接的左表

right :提供要做模向拼接的右表。

how :左右两表拼接时的联接类型,分为left,right,outer,inner,默认为inner

on :要设置为连接键的列或索引级别名称,必须在两个表中都找到它们,如果on是None并且没有在索引上做拼接,那么将默认两个表表的交集

left_on :要在左表中连接的列或索引级别名称,也可以是左表长表的数组或数组列表,这些数组视为列。

right_on : 要在右表中连接的列或索引级别名称,也可以是右表长表的数组或数组列表,这些数组视为列。

left_index :使用左表中的索引作为连接健。如果是分层索引,则其他表中的键数(索引或列数)必须与级别数匹配

right_index :使用右表中的索引作为连接健。注意事项同上

sort :默认为False,将合并的数据进行排序

suffixes :给拼接后的左右两表相同列名添后缀,一种长序为2的序列,表示分别添加左表和右表相同列表的后缀。


import pandas as pd

df_l=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","分数表", index_col=0)

df_r=pd.read_excel( r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","信息表", index_col=0)

print (df_l)

print (df_r)

df=pd.merge(left=df_l,

right=df_r,

left_index= True,

right_index= True,

suffixes=( "_L","_R" )

)

print (df)

返回:

姓名 部门 分数
工号
NED01 张三 销售部 99
NED03 王麻子 IT部 97
NED05 小华 销售部 96

姓名 部门 籍贯
编号
NED01 张三 销售部 山东
NED02 李四 财务部 四川
NED03 王麻子 IT部 湖南
NED04 小曾 销售部 上海
NED05 小华 销售部 北京

姓名_L 部门_L 分数 姓名_R 部门_R 籍贯
NED01 张三 销售部 99 张三 销售部 山东
NED03 王麻子 IT部 97 王麻子 IT部 湖南
NED05 小华 销售部 96 小华 销售部 北京